package com.example.mysql.repository;


import com.example.mysql.entity.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

import java.util.Optional;

@Repository
public interface UserRepository extends CrudRepository<User, Long> {

    /**
     * 检查用户名是否存在
     * @param username 要检查的用户名
     * @return 存在返回true，否则false
     *
     * Spring Data JPA会自动根据方法名生成查询：
     * SELECT COUNT(u) > 0 FROM User u WHERE u.username = ?1
     */
    boolean existsByUsername(String username);

    /**
     * 通过用户名查找用户
     * @param username 要查找的用户名
     * @return 包装在Optional中的用户对象
     *
     * 生成查询：
     * SELECT u FROM User u WHERE u.username = ?1
     *
     * 使用Optional可以避免返回null，更安全
     */
    Optional<User> findByUsername(String username);
}